Total Correctness of Logic Programs: A Formal Approach
نویسنده
چکیده
This paper presents a deductive system in which one can prove total correctness of pure Prolog programs with negation. Total correctness of logic programs means two things: termination and partial correctness with respect to a specification. The deductive system we use is a Clark-like completion augmented with induction. It is called the inductive extension of a logic program. The connections between Clark’s completion and Prolog have been doubted before, since Prolog uses a special literal selection rule and a special search strategy. Also the possibility of using first-order predicate logic with induction for proving termination has rarely been used. We demonstrate the usefulness of the deductive system by giving a complete, fully formalized correctness proof of a program for TAUT. The example program uses negation as failure and backtracking in a non-trivial way and is therefore a typical Prolog program.
منابع مشابه
Applications of Fuzzy Program Graph in Symbolic Checking of Fuzzy Flip-Flops
All practical digital circuits are usually a mixture of combinational and sequential logic. Flip–flops are essential to sequential logic therefore fuzzy flip–flops are considered to be among the most essential topics of fuzzy digital circuit. The concept of fuzzy digital circuit is among the most interesting applications of fuzzy sets and logic due to the fact that if there has to be an ultimat...
متن کاملModules, Reuse and Correctness
Modules are essential for systematic software development. For formal software development, where (formal) correctness is paramount, modules should have suitable forms and a formal semantics for (reasoning about) their correctness and reuse. In this paper, we deene modules as rst-order theories (with isoinitial semantics) that contain logic programs, and deene and discuss such modules, their re...
متن کاملInductive Completeness of Logics of Programs
We propose a new approach to delineating logics of programs, based directly on inductive definition of program semantics. The ingredients are elementary and well-known, but their fusion yields a simple yet powerful approach, surprisingly overlooked for decades. The denotational semantics of a regular program can be construed as a relation, easily definable by structural induction on programs. I...
متن کاملar X iv : 0 90 6 . 45 86 v 1 [ qu an t - ph ] 2 5 Ju n 20 09 Hoare Logic for Quantum Programs ∗
Hoare logic is a foundation of axiomatic semantics of classical programs and it provides effective proof techniques for reasoning about correctness of classical programs. To offer similar techniques for quantum program verification and to build a logical foundation of programming methodology for quantum computers, we develop a full-fledged Hoare logic for both partial and total correctness of q...
متن کاملProgram Construction and Verification Components Based on Kleene Algebra
Variants of Kleene algebra support program construction and verification by algebraic reasoning. This entry provides a verification component for Hoare logic based on Kleene algebra with tests, verification components for weakest preconditions and strongest postconditions based on Kleene algebra with domain and a component for step-wise refinement based on refinement Kleene algebra with tests. ...
متن کامل